home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-09-10 | 1.4 KB | 68 lines | [TEXT/KAHL] |
- /*
- * setjmp.h
- *
- * Copyright (c) 1991 Symantec Corporation. All rights reserved.
- *
- */
-
- #pragma once
-
-
- /* ----- setjmp ----- */
-
- #pragma parameter D0 setjmp(A0)
-
- #if !__option(mc68881)
-
- typedef long jmp_buf[11];
-
- int setjmp(jmp_buf) = {
- 0x7000, /* moveq #0,d0 */
- 0x43FA, 0x0006, /* lea @1,a1 */
- 0x48D0, 0xDEF8, /* movem.l d3-d7/a1-a4/a6-a7,(a0) */
- }; /* @1 */
-
- #else
-
- typedef long jmp_buf[23];
-
- int setjmp(jmp_buf) = {
- 0x7000, /* moveq #0,d0 */
- 0x43FA, 0x000E, /* lea @1,a1 */
- 0x48D0, 0xDEF8, /* movem.l d3-d7/a1-a4/a6-a7,(a0) */
- 0xF228, 0xF00F, 0x002C, /* fmovem fp4-fp7,44(a0) */
- 0x6004, /* bra.s @2 */
- 0xF210, 0xD00F, /* @1 fmovem (a0),fp4-fp7 */
- }; /* @2 */
-
- #endif
-
- #pragma nooptimize(setjmp)
-
-
- /* ----- longjmp ----- */
-
- #pragma parameter longjmp(A0,D0)
-
- #if !__option(int_4)
-
- void longjmp(jmp_buf, int) = {
- 0x4A40, /* tst.w d0 */
- 0x6602, /* bne.s @1 */
- 0x7001, /* moveq #1,d0 */
- 0x4CD8, 0xDEF8, /* @1 movem.l (a0)+,d3-d7/a1-a4/a6-a7 */
- 0x4ED1, /* jmp (a1) */
- };
-
- #else
-
- void longjmp(jmp_buf, int) = {
- 0x4A80, /* tst.l d0 */
- 0x6602, /* bne.s @1 */
- 0x7001, /* moveq #1,d0 */
- 0x4CD8, 0xDEF8, /* @1 movem.l (a0)+,d3-d7/a1-a4/a6-a7 */
- 0x4ED1, /* jmp (a1) */
- };
-
- #endif
-